package cn.zswltech.gruul.common.entity;

import cn.zswltech.gruul.common.dal.tkmybatis.IEntity;
import com.alibaba.fastjson.JSONArray;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.persistence.*;
import java.util.Date;

@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "bifrost_menu")
public class MenuDO extends IEntity {
    /**
     * 主键
     */
    @Id
    @GeneratedValue(generator = "JDBC",strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 创建时间
     */
    @Column(name = "gmt_create")
    private Date gmtCreate;

    /**
     * 最后修改时间
     */
    @Column(name = "gmt_modified")
    private Date gmtModified;

    /**
     * 菜单标志 唯一 预留license
     */
    private String code;

    /**
     * 级别
     */
    private Integer level;

    /**
     * 排序
     */
    @Column(name = "sort_no")
    private Integer sortNo;

    /**
     * 菜单类型 branch 枝干  leaf 叶子
     */
    private String type;

    /**
     * 请求路径
     */
    private String path;

    /**
     * 上级菜单标志
     */
    @Column(name = "parent_id")
    private Long parentId;
    /**
     * 系统标识
     */
    @Column(name = "system_code")
    private String systemCode;

    /**
     * 图标码
     */
    private String icon;

    /**
     * 名称
     */
    private String name;
    /**
     * 英文名称
     */
    private String enName;
    /**
     * 显示用
     */
    private boolean hasPermission;
    /**
     * 显示用
     */
    JSONArray children;
    /**
     * 创建用户账号
     */
    @Column(name = "create_by")
    private String createBy;

    /**
     * 修改用户账号
     */
    @Column(name = "update_by")
    private String updateBy;

    @Column(name = "target")
    private String target;
}